package com.zzh.partnersys.es.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

/**
 * ES 队伍文档实体
 *
 * @author zzh
 */
@Data
public class TeamDocument implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 队伍唯一ID（关联MySQL）
     */
    private Long id;

    /**
     * 队伍名称（核心搜索字段）
     */
    private String name;

    /**
     * 队伍描述（搜索+匹配字段）
     */
    private String description;

    /**
     * 队伍头像（仅展示，不搜索）
     */
    private String imageUrl;

    /**
     * 协作目标（搜索+匹配字段）
     */
    private String collabGoal;

    /**
     * 项目周期（筛选字段）
     */
    private Integer projectCycle;

    /**
     * 队员标签聚合（如["Java","Redis","全栈"]，keyword支持精确匹配+编辑距离）
     */
    private List<String> tags;

    /**
     * 队伍状态（0公开/1私有/2加密，筛选字段）
     */
    private Integer status;

    /**
     * 当前人数（筛选未满员）
     */
    private Integer currentTeamNum;

    /**
     * 最大人数（筛选未满员）
     */
    private Integer maxNum;

    /**
     * 过期时间（筛选未过期）
     */
    @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss")
    private LocalDateTime expireTime;

    /**
     * 逻辑删除（筛选未删除）
     */
    private Integer isDelete;
}

